#pragma once
#include <BWAPI.h>

#define POS BWAPI::Position

const BWAPI::Position directionPositions[256] =
{
  POS(0, -256),POS(6, -256),POS(13, -256),POS(19, -255),POS(25, -255),POS(31, -254),POS(38, -253),POS(44, -252),
  POS(50, -251),POS(56, -250),POS(62, -248),POS(68, -247),POS(74, -245),POS(80, -243),POS(86, -241),POS(92, -239),
  POS(98, -237),POS(104, -234),POS(109, -231),POS(115, -229),POS(121, -226),POS(126, -223),POS(132, -220),POS(137, -216),
  POS(142, -213),POS(147, -209),POS(152, -206),POS(157, -202),POS(162, -198),POS(167, -194),POS(172, -190),POS(177, -185),
  POS(181, -181),POS(185, -177),POS(190, -172),POS(194, -167),POS(198, -162),POS(202, -157),POS(206, -152),POS(209, -147),
  POS(213, -142),POS(216, -137),POS(220, -132),POS(223, -126),POS(226, -121),POS(229, -115),POS(231, -109),POS(234, -104),
  POS(237, -98),POS(239, -92),POS(241, -86),POS(243, -80),POS(245, -74),POS(247, -68),POS(248, -62),POS(250, -56),
  POS(251, -50),POS(252, -44),POS(253, -38),POS(254, -31),POS(255, -25),POS(255, -19),POS(256, -13),POS(256, -6),
  POS(256, 0),POS(256, 6),POS(256, 13),POS(255, 19),POS(255, 25),POS(254, 31),POS(253, 38),POS(252, 44),
  POS(251, 50),POS(250, 56),POS(248, 62),POS(247, 68),POS(245, 74),POS(243, 80),POS(241, 86),POS(239, 92),
  POS(237, 98),POS(234, 104),POS(231, 109),POS(229, 115),POS(226, 121),POS(223, 126),POS(220, 132),POS(216, 137),
  POS(213, 142),POS(209, 147),POS(206, 152),POS(202, 157),POS(198, 162),POS(194, 167),POS(190, 172),POS(185, 177),
  POS(181, 181),POS(177, 185),POS(172, 190),POS(167, 194),POS(162, 198),POS(157, 202),POS(152, 206),POS(147, 209),
  POS(142, 213),POS(137, 216),POS(132, 220),POS(126, 223),POS(121, 226),POS(115, 229),POS(109, 231),POS(104, 234),
  POS(98, 237),POS(92, 239),POS(86, 241),POS(80, 243),POS(74, 245),POS(68, 247),POS(62, 248),POS(56, 250),
  POS(50, 251),POS(44, 252),POS(38, 253),POS(31, 254),POS(25, 255),POS(19, 255),POS(13, 256),POS(6, 256),
  POS(0, 256),POS(-6, 256),POS(-13, 256),POS(-19, 255),POS(-25, 255),POS(-31, 254),POS(-38, 253),POS(-44, 252),
  POS(-50, 251),POS(-56, 250),POS(-62, 248),POS(-68, 247),POS(-74, 245),POS(-80, 243),POS(-86, 241),POS(-92, 239),
  POS(-98, 237),POS(-104, 234),POS(-109, 231),POS(-115, 229),POS(-121, 226),POS(-126, 223),POS(-132, 220),POS(-137, 216),
  POS(-142, 213),POS(-147, 209),POS(-152, 206),POS(-157, 202),POS(-162, 198),POS(-167, 194),POS(-172, 190),POS(-177, 185),
  POS(-181, 181),POS(-185, 177),POS(-190, 172),POS(-194, 167),POS(-198, 162),POS(-202, 157),POS(-206, 152),POS(-209, 147),
  POS(-213, 142),POS(-216, 137),POS(-220, 132),POS(-223, 126),POS(-226, 121),POS(-229, 115),POS(-231, 109),POS(-234, 104),
  POS(-237, 98),POS(-239, 92),POS(-241, 86),POS(-243, 80),POS(-245, 74),POS(-247, 68),POS(-248, 62),POS(-250, 56),
  POS(-251, 50),POS(-252, 44),POS(-253, 38),POS(-254, 31),POS(-255, 25),POS(-255, 19),POS(-256, 13),POS(-256, 6),
  POS(-256, 0),POS(-256, -6),POS(-256, -13),POS(-255, -19),POS(-255, -25),POS(-254, -31),POS(-253, -38),POS(-252, -44),
  POS(-251, -50),POS(-250, -56),POS(-248, -62),POS(-247, -68),POS(-245, -74),POS(-243, -80),POS(-241, -86),POS(-239, -92),
  POS(-237, -98),POS(-234, -104),POS(-231, -109),POS(-229, -115),POS(-226, -121),POS(-223, -126),POS(-220, -132),POS(-216, -137),
  POS(-213, -142),POS(-209, -147),POS(-206, -152),POS(-202, -157),POS(-198, -162),POS(-194, -167),POS(-190, -172),POS(-185, -177),
  POS(-181, -181),POS(-177, -185),POS(-172, -190),POS(-167, -194),POS(-162, -198),POS(-157, -202),POS(-152, -206),POS(-147, -209),
  POS(-142, -213),POS(-137, -216),POS(-132, -220),POS(-126, -223),POS(-121, -226),POS(-115, -229),POS(-109, -231),POS(-104, -234),
  POS(-98, -237),POS(-92, -239),POS(-86, -241),POS(-80, -243),POS(-74, -245),POS(-68, -247),POS(-62, -248),POS(-56, -250),
  POS(-50, -251),POS(-44, -252),POS(-38, -253),POS(-31, -254),POS(-25, -255),POS(-19, -255),POS(-13, -256),POS(-6, -256)
};

